package com.epalmpay.service.groupaccount;

import java.util.List;

import com.epalmpay.dto.datareport.GroupAccountInDTO;
import com.epalmpay.dto.datareport.GroupAccountLogDayOutDTO;
import com.epalmpay.dto.datareport.GroupAccountLogDaySumOutDTO;
import com.epalmpay.dto.datareport.GroupAccountLogMonthOutDTO;
import com.epalmpay.dto.datareport.GroupAccountLogMonthSumOutDTO;
import com.epalmpay.dto.datareport.GroupAccountLogOutDTO;
import com.epalmpay.dto.datareport.GroupAccountOutDTO;
import com.epalmpay.entity.GroupAccount;
import com.epalmpay.entity.GroupAccountLogDay;
import com.epalmpay.entity.GroupAccountLogDaySum;
import com.epalmpay.entity.GroupAccountLogMonth;
import com.epalmpay.entity.GroupAccountLogMonthSum;
import com.epalmpay.entity.Page;
import com.epalmpay.enumdef.BizEnum;

public interface IGroupAccountService {

	List<GroupAccountLogDaySumOutDTO> getGroupAccountDayList(GroupAccountInDTO groupAccountInDTO, Page page) throws Exception;

	List<GroupAccountLogMonthSumOutDTO> getGroupAccountMonthList(GroupAccountInDTO groupAccountInDTO, Page page)throws Exception;
	//查询营销剩余金额
	GroupAccount getAmount(GroupAccountInDTO groupAccountInDTO) throws Exception;
	

	GroupAccountLogDaySum queryDaySumStatisDate(GroupAccountLogDaySum groupAccountLogDaySum);

	GroupAccountLogMonthSum queryMonthSumStatisDate(GroupAccountLogMonthSum groupAccountLogMonthSum);
	
	//查看详情(显示日使用类型 状态)
	List<GroupAccountLogDayOutDTO> getGroupAccountLogDayList(GroupAccountInDTO groupAccountInDTO, Page page)throws Exception;
	//查看详情(显示yue使用类型 状态)
	List<GroupAccountLogMonthOutDTO> getGroupAccountLogMonthList(GroupAccountInDTO groupAccountInDTO, Page page);
	//新增余额 查询手机号码
	GroupAccount queryData(GroupAccount groupAccount);

	GroupAccountOutDTO updateAmount(GroupAccountInDTO groupAccountInDTO)throws Exception;
	//根据id 查询acccountId
	GroupAccountLogDay queryAccountById(Long id) throws Exception;
	//查询红包返利列表
	List<GroupAccountLogOutDTO> getGroupAccountLogList(GroupAccountInDTO groupAccountInDTO, Page page);
//	GroupAccountListOutDTO getGroupAccountLogList(GroupAccountInDTO groupAccountInDTO, Page page);
	
	//根据月id 查询acccountId为查询下面的日做准备
	GroupAccountLogMonth queryMonthAccountById(Long id)throws Exception;
	//查询月下面日的详情
	List<GroupAccountLogDayOutDTO> getGroupAccountLogMonthDayList(	GroupAccountInDTO groupAccountInDTO, Page page);

	//更新余额同时插入流水
	public int updateAmount(Long groupId, BizEnum.SaleAccountSubjectType subjectType
			, Integer amount,Long relateTableId,Long activityId,String desc) throws Exception;

	List<GroupAccountLogMonthOutDTO> queryGroupAccountLogMonthList(GroupAccountInDTO groupAccountInDTO, Page page);



}
